| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115 |
1×
1×
1×
| //
//
//
//
//
//
//
//
//
//
//
//
//
//
//
import abstractButton from '../internal/abstractButton'
import icon from '../icon'
import {getColor} from '../utils'
export default {
name: 'mu-flat-button',
props: {
label: {
type: String
},
icon: {
type: String
},
labelPosition: {
type: String,
default: 'after'
},
labelClass: {
type: String,
default: ''
},
primary: {
type: Boolean,
default: false
},
secondary: {
type: Boolean,
default: false
},
disabled: {
type: Boolean,
default: false
},
keyboardFocused: {
type: Boolean,
default: false
},
href: {
type: String,
default: ''
},
target: {
type: String
},
backgroundColor: {
type: String,
default: ''
},
color: {
type: String,
default: ''
},
hoverColor: {
type: String,
default: ''
},
rippleColor: {
type: String
},
rippleOpacity: {
type: Number
}
},
methods: {
handleClick (e) {
this.$emit('click', e)
},
handleKeyboardFocus (isFocus) {
this.$emit('keyboardFocus', isFocus)
},
handleHover (event) {
this.$emit('hover', event)
},
handleHoverExit (event) {
this.$emit('hoverExit', event)
}
},
computed: {
buttonStyle () {
return {
'background-color': this.hover ? getColor(this.hoverColor) : getColor(this.backgroundColor),
'color': getColor(this.color)
}
},
buttonClass () {
return {
'mu-flat-button-primary': this.primary,
'mu-flat-button-secondary': this.secondary,
'label-before': this.labelPosition === 'before',
'no-label': !this.label
}
}
},
components: {
'abstract-button': abstractButton,
icon
}
}
|